package com.mca.framework.optional;

import java.util.Optional;

/**
 * @Author: zhoupeng
 * @createTime: 2025年07月28日 23:01:22
 * @version: 1.0
 * @Description:
 * @copyright:
 */
public class OptionalDemoTest {

    public static void main(String[] args) {
        String name="aaa";
//        if(name!=null){
//            System.out.println(name.length());
//        }else{
//            System.out.println("Name is null");
//        }
        //使用Option进行代码优化
//        核心作用
//        安全封装可能为 null 的值
//        Optional.ofNullable() 允许传入 null，并返回一个空的 Optional 对象（即 Optional.empty()），而不会抛出异常。
//        避免显式的 null 检查
//        通过 Optional 提供的方法（如 ifPresent()、orElse()、map() 等），可以更流畅地处理可能缺失的值，减少嵌套的 if-else 代码。
        Optional<String> optionName = Optional.ofNullable(name);
        //方式一： 直接处理
        optionName.ifPresent(n-> System.out.println(n.length())); //若不为null则执行

        //方式二：提供默认值
        String result = optionName.orElse("6666");
        System.out.println(result);
        //方式三：链式处理
        optionName.map(String::toUpperCase).ifPresent(System.out::println);
        // List<DepartmentOrganizationRedisDTO> organizationRedisDTOS = new ArrayList<>();
       //     Optional<DepartmentOrganizationRedisDTO> parent = organizationRedisDTOS.stream().filter
        //                        (x -> x.getCode().equals(departmentCode)).findFirst();  只取第一个有值的进行返回
//        if (parent.isPresent()) {
//            if (parent.get().getDepartmentLevelCode().equals(ten)) {
//
//            }
//        }
    }
}
